$(function ()
{

    loginstate();
    initshop();
    initCart();
    tablef();
    // 初始化购物车的值
    function initshop()
    {
        // 当存在用户登录的时候
        if ($.cookie("uname"))
        {
            // 获取购物车物品的数量
            let len = 0;
            if($.cookie("shopCart"))
            len = JSON.parse($.cookie("shopCart")).length;
            // 赋予页面中em值
            $(".searchbox .right .buy div").find("em").text(len);
        }
        else {
            $(".searchbox .right .buy div").find("em").text(0);
        }
    }
    //检测登录状态 
    function loginstate()
    {
        if ($.cookie("uname"))
        {
            function change(e)
            {
                // 阻止默认行为刷新页面
                e.preventDefault();
                // 退出登录后  变回原样 
                $(".topbox .right").find("div")
                .eq(0).find("a")
                .text("你好,请登录")
                .prop("href", "/乐视项目/html/login.html"); 
                
                $(".searchbox .box .right .buy").find("div").find("a")
                .prop("href", "/乐视项目/html/login.html");

                // 清除已经存在的cookie
                $.removeCookie('uname');
                $.removeCookie('pwd');
                // 同时改变自身内容
                $(this).text("免费注册").off("click");
                // 退出登录后 更新购物车显示  同时删除购物车 cookie
                $.removeCookie('shopCart');
                initshop();
                // 同时去除table中的内容显示
                $(".cartbox .bxbottom .goodinfo .goodmes tr").remove();
                // 同时更新页面中显示的商品数量
                $(".cart .bxtop .mes ").find("li").eq(0).find("span").text(0);
            }
            // 发现已经登录  则将页面url进行更换
            $(".topbox .right ").find("div")
                .eq(0).find("a")
                .text($.cookie("uname"))
                .prop("href", "/乐视项目/html/shopCart.html");
            
            $(".topbox .right").find("div")
                .eq(1).find("a")
                .text("退出登录")
                .on("click", change);
            
            $(".searchbox .box .right .buy").find("div").find("a")
                .prop("href", "/乐视项目/html/shopCart.html");
            
        }
    }
    
    // 利用cookie  更新购物车的数据
    function initCart()
    {
        //  拿到购物车的数据
        let arr = [];
        // 插入页面  当存在时用户时
        if ($.cookie("uname"))
        {
            if ($.cookie("shopCart"))
            {
                
                arr = JSON.parse($.cookie("shopCart"));   
                let len = arr.length;
                for (let i = 0; i < len; i++)
                {
                    let str = `
                    <tr>
                    <td class="choice">
                        <input type="checkbox" name="" id="">
                    </td>
                    <td colspan="2" class="mesinfo">
                        <img src=${arr[i].src} alt="">
                        <p>${arr[i].name}&nbsp;&nbsp;&nbsp;<em>${'地址: '+arr[i].address}</em></p>
                    </td>
                    <td class="price">${'￥'+arr[i].price}</td>
                    <td class="number">
                       <div>
                        <input type="button" value="-" class="sub">
                        <input type="text" name="" value="${arr[i].number}" disabled>
                        <input type="button" value="+" class="add">
                       </div>
                    </td>
                    <td class="sumprice">${'￥ '+arr[i].number * arr[i].price}</td>
                    <td class="oper"><a href="">删除</a></td>
                </tr>
                    `  ;
                    $(".goodinfo .goodmes").append(str);
                }
                $(".cart .bxtop .mes ").find("li").eq(0).find("span").text(len);
                // console.log(len);
            }
        }
    }
    //  表格功能
    function tablef()
    {
        // 给减号  绑定功能
        $(".goodinfo .goodmes .number .sub").on("click", function ()
        {
            let price = $(this).parent().parent().parent().find(".price").text().split("￥")[1];
            let number = $(this).next().val() -1;
            // 更新  页面中number的数据
            if ($(this).next().val() - 1 <= 0)
            {
                $(this).next().val(1);
                number = 1;
            }
            else
                $(this).next().val(number);
             
            // 更新重新计算总价
                $(this).parent().parent().parent().find(".sumprice").text("￥" + price * number);
            //  如果被选中   更新数据时 同步更新所有价格
            if ($(this).parent().parent().parent().find(".choice").find("input").prop("checked"))
            {
                countSum();    
            }    
        })
        // 给加号 绑定功能
        $(".goodinfo .goodmes .number .add").on("click", function ()
        {
            let price = $(this).parent().parent().parent().find(".price").text().split("￥")[1];
            let number = $(this).prev().val() - 0 + 1;
            
            $(this).prev().val(number);
            $(this).parent().parent().parent().find(".sumprice").text("￥" + price * number);
            //  如果被选中   更新数据时 同步更新所有价格
            if ($(this).parent().parent().parent().find(".choice").find("input").prop("checked"))
            {
                countSum();    
            }   
        })
        // 给删除绑定功能
        $(".goodinfo .goodmes .oper").find("a").on("click", function (e)
        {
            e.preventDefault();
            // 将页面中  该数据删除
            // 拿到对应名称和地址
            let address = $(this).parent().parent()
                .find(".mesinfo").find("em")
                .text().split(" ")[1];
            let name = $(this).parent().parent()
                .find(".mesinfo").find("p").text();
            let arr = name.split(" ");
            name = "";
            for (let i = 0; i < 3; i++)
            {
                name += arr[i]+" ";    
            }
            console.log(name,address);
            //  更改数据库数据
            let ip = location.href.split("//")[1].split("/")[0].split(":")[0];
            $.get("http://"+ip+":8000"+"/register/deleteshop", {name, address}, function (res) {
                if (res == "删除成功")
                console.log("数据删除成功");
                else
                console.log("数据删除失败");
            })

            // 改变页面效果
            $(this).parent().parent().remove();
            // 改变商品总数
            $(".cart .bxtop .mes ").find("li").eq(0).find("span").text( $(".cart .bxtop .mes ").find("li").eq(0).find("span").text()-1);
            // 更新cookie中的数据
            if ($.cookie("shopCart"))
            {
                arr = JSON.parse($.cookie("shopCart"));
                arr=arr.filter(item => {
                    return !(item.name == name && item.address == address);
                });
                // 更改筛选后的数据
                $.cookie("shopCart", JSON.stringify(arr));
            }
            // 更新页面购物车效果
            initshop();
        })
        // 更新按钮的颜色
        function buystate()
        {
            let arr;
            let flag = false;
            arr = $(".goodinfo .goodmes .choice input");
            for (let i = 0; i < arr.length; i++)
            {
                if (!$(arr[i]).prop("checked"))
                    continue;
                else
                {
                    flag = true;
                    break;
                }
            }
            console.log(flag);
            
            if (flag) {
                $(".goodsum .gsright  input").css({
                    backgroundColor: "#FF7F50"
                })
                $(".goodsum .gsright  input").prop("disabled", false);
                $(".cart .bxtop .tpright input").prop("disabled",false);
            }
            else
            {
                $(".goodsum .gsright  input").css({
                    backgroundColor: "#ddd"
                });
                $(".goodsum .gsright  input").prop("disabled", "disabled");
                $(".cart .bxtop .tpright input").prop("disabled","disabled");
            }
                
        }
        // 选中所有
        function all()
        {
            if ($(".goodinfo .goodmes .choice"))
            {
                $(".goodinfo .goodmes .choice").find("input")
                    .prop("checked", $(this).prop("checked"));
            }
            $(".goodinfo .goodtitle input").prop("checked",$(this).prop("checked"));
            $(".goodsum .gsleft input").prop("checked", $(this).prop("checked"));
            // 更新总价 和数量
            countSum();
        }
        // 计算选定商品价格 和商品数量
        function countSum()
        {
            // 总价
            let sum = 0;
            // 总数量
            let count = 0;
            // 拿到所有商品信息
            let goodinfo = $(".goodinfo .goodmes tr");
            console.log(goodinfo);
            for (let i = 0; i < goodinfo.length; i++)
            {
                if ($(goodinfo[i]).find(".choice").find("input").prop("checked"))
                {
                    sum += $(goodinfo[i]).find(".sumprice").text().split("￥")[1] - 0;
                    count++;
                }    
            }
           
            
            $(".goodsum .gsright .gssum").text(sum);
            console.log(sum);
            
            $(".goodsum .gsright .gsnumber").text(count);
            $(".cart .bxtop .tpright .sum").text('￥' + sum);
            buystate();
        }
          // 给全选按钮进行绑定
        $(".goodinfo .goodtitle input").on("click", all)
        $(".goodsum .gsleft input").on("click", all)
        // 给单选按钮绑定事件
        $(".goodinfo .goodmes .choice").find("input").on("click", function ()
        {
            let arr = Array.from($(".goodinfo .goodmes .choice").find("input"));
            let flag=arr.every(item => {
                return $(item).prop("checked"); 
            })
            $(".goodinfo .goodtitle input").prop("checked", flag);
            $(".goodsum .gsleft input").prop("checked", flag);

            countSum();
        })

        // 全部删除事件
        $(".goodsum .gsleft a").on("click", function (e)
        {
            e.preventDefault();
            if ($(".goodinfo .goodmes tr"))
            {
                $(".goodinfo .goodmes tr").remove();
                if ($.cookie("shopCart"))
                {
                    $.cookie("shopCart", JSON.stringify([]));    
                }
            }   
            // 更新商品总数
            $(".cart .bxtop .mes ").find("li").eq(0).find("span").text(0);
            // 更新数据库数据
            if ($.cookie("uname"))
            {
                let uname = $.cookie("uname");
                let ip = location.href.split("//")[1].split("/")[0].split(":")[0];
                $.get("http://"+ip+":8000"+"/shopcart/deleteAll", { uname }, function (res)
                {
                    console.log(res);
                    
                    if (res == "当前用户购物车数据删除成功")
                    {
                        console.log("当前用户购物车数据删除成功");
                    }
                    else {
                        console.log("当前用户购物车数据删除失败");
                    }
                })
            }
            initshop();
        })

        // 结算功能
        function sumall()
        {
            layer.confirm('是否支付?', {icon: 3, title:"当前需要支付￥：" + $(".goodsum .gsright .gssum").text(),anim:5}, function(index){
                if (index)
                {
                    // 清除页面效果  并清除cookie
                    if ($(".goodinfo .goodmes tr"))
                    {
                        // 寻找已经选中的商品  以地址为单位
                        var addreslist = [];
                        let arr=Array.from($(".goodmes tr"));
                        arr.forEach(item => {
                            if ($(item).find(".choice input").prop("checked"))
                            {
                                addreslist.push($(item).find(".mesinfo em").text().split(":")[1].trim());
                            //    改变页面效果
                                $(item).remove();
                            }
                        })
                        
                        // 清除已经选中的购物车物品的cookie
                        if ($.cookie("shopCart"))
                        {
                            let arr =JSON.parse($.cookie("shopCart"));
                            for (let i = 0; i < addreslist.length; i++)
                            {
                                for (let j = 0; j < arr.length; j++)
                                {
                                    if (addreslist[i] == arr[j].address)
                                    {
                                        arr.splice(j, 1);
                                        j--;
                                    }
                                }    
                            }
                            $.cookie("shopCart", JSON.stringify(arr));
                        }
                    }
                    // 更新数据库数据
                    if ($.cookie("uname"))
                    {
                        console.log(addreslist);
                        
                        let name = $.cookie("uname");
                        // 删除选中的数据 
                        let ip = location.href.split("//")[1].split("/")[0].split(":")[0];
                        for (let i = 0; i < addreslist.length; i++)
                        {
                            // 每一次都发一个请求
                            $.get("http://"+ip+":8000"+"/shopcart/deleteshop", { name,address:addreslist[i]}, function (res)
                            {
                                console.log(res);
                                if (res == "删除成功")
                                {
                                    console.log("商品数据删除成功");
                                }
                                else {
                                    console.log("商品数据删除失败");
                                }
                            })
                        }
                    
                    }
                    // 购物车总数改变
                    let arr =JSON.parse($.cookie("shopCart"));
                    $(".cart .bxtop .mes ").find("li").eq(0).find("span").text(arr.length);
                    $(".searchbox .buy div em").text(arr.length);
                    // 将总计的  选中商品变为0
                    $(".goodsum .gsright .gssum").text(0);
                    $(".goodsum .gsright .gsnumber").text(0);
                    console.log( $(".cart .bxtop .tpright ").find(".sum"));
                    
                    $(".cart .bxtop .tpright ").find(".sum").text(0);
                    layer.alert('支付成功', {icon: 1}); //这时如果你也还想执行yes回调，可以放在第三个参数中。
                }
            });
        }
        $(".goodsum .gsright  input").click(sumall);
        $(".cart .bxtop .tpright input").click(sumall);

    }
})